package com.four.seckill.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.four.common.vo.CommodityTo;
import com.four.seckill.entity.CommodityEntity;
import com.four.seckill.vo.CommodityVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Author: hxw
 * @Date: 2022/01/06/11:31
 * @Description
 */
public interface CommodityMapper {

    /**
     * 列表分页
     * @return
     */
    List<CommodityEntity> getList();

    /**
     * 修改 为秒杀的商品
     * @param commodityEntity
     */
    void saveUpdCommodity(@Param("commodityEntity") CommodityEntity commodityEntity);

    /**
     * 商品分页模糊查
     * @param commodityPage
     * @param vo
     * @param catId
     * @return
     */
    IPage<CommodityEntity> commodityList(Page<CommodityEntity> commodityPage, @Param("vo") CommodityVo vo, @Param("catId") Integer catId);

    /**
     * 添加商品
     * @param commodity
     */
    void addCommdity(@Param("com") CommodityEntity commodity);

    /**
     * 根据id删除商品 状态为0
     * @param comId
     */
    void deleteById(@Param("comId") Integer comId);

    /**
     * 根据id查询商品
     * @param comId
     * @return
     */
    CommodityEntity getCommodityById(@Param("comId") Integer comId);

    /**
     * 根据id修改商品信息
     * @param commodity
     */
    void updateCommodityById(@Param("com") CommodityEntity commodity);

    /**
     * 修改状态
     * @param commodityById
     */
    void updateByStatus(@Param("commodityById") CommodityEntity commodityById);

    /**
     * feign调用根据编号查询商品的详情
     * @param comId
     * @return
     */
    CommodityTo getByComId(@Param("comId") Integer comId);
}
